package org.icosagon.datastore;

import java.util.Collection;
import org.icosagon.core.magic.Spell;

/**
 * This interface is used to grab <code>Spell</code> objects from a
 * <code>DataStore</code>.
 */
public interface SpellManager {
    /** Get <code>Spell</code> by name. */
    public Spell getSpell(String name);
    /**
     * Get all spells that contain this substring.
     * @param namelike - String to check for in spell name.
     * @return Spells containing the specified String.
     */
    public Collection<Spell> getSpells(String namelike);
    public Collection<Spell> getByType(String type);
    public Collection<Spell> getBySubType(String subtype);
    public void saveSpell(Spell spell);
}